home *** CD-ROM | disk | FTP | other *** search
- // -*- c++ -*-
-
- /*
- * copyright : (C) 2001-2002 by Richard Moore
- * License : This file is released under the terms of the LGPL, version 2.
- * email : rich@kde.org
- */
-
- #ifndef KWINDOWINFO_H
- #define KWINDOWINFO_H
-
- #include <qobject.h>
- #include <qpixmap.h>
- #include <qstring.h>
-
- #include <kdelibs_export.h>
-
- /**
- * Displays messages in the window icon and title. The message is usually
- * transient with the original title and icon being restored automatically
- * after a specified time. The simplest use displays a text message in the
- * window title:
- * \code
- * KWindowInfo::showMessage( this, i18n("Message Body") );
- * \endcode
- * This more complex example changes the window icon, as well as
- * displaying the text. In addition, this example overrides the
- * default timeout to ensure the message is only displayed for 1
- * second.
- * \code
- * QPixmap px;
- * px.load( "lo16-app-logtracker.png" );
- * KWindowInfo::showMessage( this, i18n("Message Body"), px, 1000 );
- * \endcode
- * If the parent window inherits KSystemTray then KWindowInfo changes the
- * pixmap and tooltip of the system window to display the message.
- *
- * @author Richard Moore, rich@kde.org
- * @since 3.1
- */
- class KDEUI_EXPORT KWindowInfo : public QObject
- {
- Q_OBJECT
-
- public:
- /**
- * Creates a KWindowInfo with the specified parent.
- */
- KWindowInfo( QWidget *parent, const char *name=0 );
-
- /**
- * Cleans up.
- */
- virtual ~KWindowInfo();
-
- /**
- * Returns true iff the object should delete itself when it resets.
- */
- bool autoDelete() const { return autoDel; }
-
- /**
- * Set to true if you want the object to delete itself when the message
- * timeout occurs.
- */
- void setAutoDelete( bool enable ) { autoDel = enable; }
-
- /**
- * Utility method to display a title bar message for the specified
- * window.
- */
- static void showMessage( QWidget *window, const QString &text, int timeout = -1 );
-
- /**
- * Utility method to display a title bar message and icon for the
- * specified window.
- */
- static void showMessage( QWidget *window, const QString &text,
- const QPixmap &pix, int timeout = -1 );
-
- public slots:
- /**
- * Shows the specified text in the window title.
- */
- void message( const QString &text );
-
- /**
- * Shows the specified text in the window title, and sets the window icon.
- */
- void message( const QString &text, const QPixmap &pix );
-
- /**
- * Shows the specified text in the window title for the specified time.
- */
- void message( const QString &text, int timeout );
-
- /**
- * Shows the specified icon and text in the window title and WM
- * icon, for the specified time. The time is a delay specified in
- * milliseconds, or one of the two special values. The special
- * values are -1 which means the default timeout should be used,
- * and 0 which means the message is permanent.
- */
- void message( const QString &text, const QPixmap &pix, int timeout );
-
- /**
- * Shows the specified text in the window title with no timeout.
- */
- void permanent( const QString &text );
-
- /**
- * Shows the specified text and icon in the window title with no timeout.
- */
- void permanent( const QString &text, const QPixmap &pix );
-
- protected:
- /**
- * Displays the message in the titlebar/icon.
- */
- virtual void display( const QString &text, const QPixmap &pix );
-
- protected slots:
- /**
- * Saves the window title and icon.
- */
- virtual void save();
-
- /**
- * Resets the window title and icon to the saved values. If
- * auto-delete is enabled then the object is deleted.
- */
- virtual void restore();
-
- private:
- QWidget *win;
- QPixmap oldIcon;
- QPixmap oldMiniIcon;
- QString oldText;
- bool autoDel;
-
- /* @internal */
- class Private *d;
- };
-
- #endif // KWINDOWINFO_H
-
-